
#ifndef _DD_PLANE_H_
#define _DD_PLANE_H_

#include "dd_base.h"
#include "math/plane.h"
#include "math/vec3.h"

namespace dd 
{
///////////////////////////////////////////////////////
///	\brief	Base class for debug shapes
///////////////////////////////////////////////////////
class Plane : public PrimitiveBase
{
	math::Vec3			m_Size;
	math::Vec3			m_Pos;
	math::Plane			m_Plane;
	bool			m_RenderSolid;
public:
    /**
     * Initialize class
     */
					Plane();
    /**
     * Destroy class
     */
	virtual			~Plane();

    /**
     * Render to buffer
     * @param   _pBuffer    Buffer to render into
     */
    virtual void	Render(DBG_BUFFER* _pBuffer);

    /**
     * Setup primitive
     * @param _Pos          Center of plane
     * @param _Size         X and Z define the extents of the plane
     * @param _Plane        Plane equation to visualize
     * @param _Color        Set the colour of the sphere
     * @param _RenderSolid  Render with fill, or just wireframe ?
     */
    void	Setup(const math::Vec3& _Pos, const math::Vec3& _Size, const math::Plane& _Plane, COLOR _Color = ColorRGBA(255, 255, 255), bool _RenderSolid = true);
};

}// End namespace dd


#endif //_DD_PLANE_H_